{
  LW Module -- LightWave Plug-in Modules

  The ModuleDescriptor is the lowest-level which describes a single
  LightWave plug-in module.  Modules can contain multiple servers
  but have one startup and shutdown each.  The synchronization codes
  are used to assure that the module matches the expectations of the
  host.

  Based on lwmodule.h which is:
  Copyright 1999, NewTek, Inc.
}

{
  Copyright 2012, Jameel Halabi

  This unit is part of the BlaiseWave wrapper,
  which is licensed under the BSD 2-Clause license (see licenses/license.txt).
}


unit LW_Module;

{$mode objfpc}{$H+}

interface

uses
  LW_Server;

const
  MOD_SYSSYNC = $04121994;
  MOD_SYSVER  = 3        ;
{$ifdef Unix}
  MOD_MACHINE = $200     ;
{$endif}
{$ifdef Windows}
  MOD_MACHINE = $300     ;
{$endif}
{$ifdef Darwin}
  MOD_MACHINE = $400     ;
{$endif}

type
  PModuleDescriptor = ^ModuleDescriptor;
  ModuleDescriptor  = record
    SysSync    : UInt32;
    SysVersion : UInt32;
    SysMachine : UInt32;

    Startup    : function                  : Pointer;
    Shutdown   : procedure (Data: Pointer) ;

    ServerDefs : PServerRecord;
  end;

implementation

end.

